package com.wgy.day33其他增强流.序列化流和反序列化流;

import java.io.Serializable;

/**
 * Created by pc on 2020/12/7 23:45
 * Description: LearningJava
 */
/*
java提供了一种 对象 序列化的机制,用一个字节序列可以表示一个对象,该字节序列包含该对象的数据,对象的类型和对象的存储的属性等信息
字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息
反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化.

ObjectOutputStream:对象的系列化流  对象-->字节
                   把对象以流的方式写入到文件中保存,叫写对象,也叫对象的序列化

ObjectInputStream:反序列化  字节-->对象
                  把文件中保存的对象,以流的方式读取出来,也叫读对象,也叫对象的反序列化

序列化和反序列化的时候,会抛出NotSerializableException没有序列化异常

类通过实现java.io.Serializable 接口以启用其序列化功能,
未实现此接口的类将无法使其任何状态序列化或反序列化 NotSerializableException

Serializable接口也叫作标记型接口,要进行序列化和反序列化的时候,就会检测类上是否有这个标记
         有:就可以序列化和反序列化
        没有:就会抛出NotSerializableException异常

 */
public class Person implements Serializable {
    private String name;
    private  int  age;


    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
